#==================================================
#	Plugin Base
#==================================================
# 基类插件
#==================================================
# @path: res://addons/code_editor_menu_button/plugin/plugin_base.gd
# @datetime: 2021-7-4 22:22:17
#==================================================
class_name _CodeEditor_SubPluginBase


var _plugin: EditorPlugin
var _interface: EditorInterface
var _util : _CodeEditorUtil
var _menu_button : _CodeEditor_MenuButton


#==================================================
#   Set/Get
#==================================================
func set_plugin(value: EditorPlugin):
	_plugin = value
	set_editor_interface(_plugin.get_editor_interface())

func get_plugin() -> EditorPlugin:
	return _plugin

func set_editor_interface(value: EditorInterface):
	_interface = value
	_util = _CodeEditorUtil.new()
	_util.set_plugin(_plugin)
	install()

func get_editor_interface() -> EditorInterface:
	return _interface

func get_util() -> _CodeEditorUtil:
	return _util

func get_menu_button() -> _CodeEditor_MenuButton:
	return _menu_button


#==================================================
#   自定义方法
#==================================================
##  添加编辑器节点
func add_editor_node(node: Node):
	get_editor_interface().get_editor_viewport().add_child(node)

## 安装
func install():
	pass

##  卸载
func uninstall():
	pass

##  添加菜单选项
func init_menu_button():
	pass
	
#	var idx = 0	# 添加菜单后返回添加的菜单的 idx 值
#	# 菜单调用的方法
#	idx = _menu_button.add_popup_item("菜单名", self, "调用的方法")
#	# 设置菜单快捷键
#	get_util().parse_shortcut_util.parse_shortcut(idx, parse_shortcut.parse_shortcut("Ctrl + /"))
#	
#
#	# 或写成以下格式
#	_menu_button.set_item_shortcut(
#		_menu_button.add_popup_item("菜单名", self, "调用的方法") 
#		, get_util().parse_shortcut_util.parse_shortcut("Ctrl + /")
#	)
	


